package com.chtw.entity;

import java.util.ArrayList;
import java.util.List;

public class StudentInfoExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public StudentInfoExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andStuIdIsNull() {
            addCriterion("stu_id is null");
            return (Criteria) this;
        }

        public Criteria andStuIdIsNotNull() {
            addCriterion("stu_id is not null");
            return (Criteria) this;
        }

        public Criteria andStuIdEqualTo(Integer value) {
            addCriterion("stu_id =", value, "stuId");
            return (Criteria) this;
        }

        public Criteria andStuIdNotEqualTo(Integer value) {
            addCriterion("stu_id <>", value, "stuId");
            return (Criteria) this;
        }

        public Criteria andStuIdGreaterThan(Integer value) {
            addCriterion("stu_id >", value, "stuId");
            return (Criteria) this;
        }

        public Criteria andStuIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("stu_id >=", value, "stuId");
            return (Criteria) this;
        }

        public Criteria andStuIdLessThan(Integer value) {
            addCriterion("stu_id <", value, "stuId");
            return (Criteria) this;
        }

        public Criteria andStuIdLessThanOrEqualTo(Integer value) {
            addCriterion("stu_id <=", value, "stuId");
            return (Criteria) this;
        }

        public Criteria andStuIdIn(List<Integer> values) {
            addCriterion("stu_id in", values, "stuId");
            return (Criteria) this;
        }

        public Criteria andStuIdNotIn(List<Integer> values) {
            addCriterion("stu_id not in", values, "stuId");
            return (Criteria) this;
        }

        public Criteria andStuIdBetween(Integer value1, Integer value2) {
            addCriterion("stu_id between", value1, value2, "stuId");
            return (Criteria) this;
        }

        public Criteria andStuIdNotBetween(Integer value1, Integer value2) {
            addCriterion("stu_id not between", value1, value2, "stuId");
            return (Criteria) this;
        }

        public Criteria andStuNameIsNull() {
            addCriterion("stu_name is null");
            return (Criteria) this;
        }

        public Criteria andStuNameIsNotNull() {
            addCriterion("stu_name is not null");
            return (Criteria) this;
        }

        public Criteria andStuNameEqualTo(String value) {
            addCriterion("stu_name =", value, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameNotEqualTo(String value) {
            addCriterion("stu_name <>", value, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameGreaterThan(String value) {
            addCriterion("stu_name >", value, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameGreaterThanOrEqualTo(String value) {
            addCriterion("stu_name >=", value, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameLessThan(String value) {
            addCriterion("stu_name <", value, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameLessThanOrEqualTo(String value) {
            addCriterion("stu_name <=", value, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameLike(String value) {
            addCriterion("stu_name like", value, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameNotLike(String value) {
            addCriterion("stu_name not like", value, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameIn(List<String> values) {
            addCriterion("stu_name in", values, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameNotIn(List<String> values) {
            addCriterion("stu_name not in", values, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameBetween(String value1, String value2) {
            addCriterion("stu_name between", value1, value2, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuNameNotBetween(String value1, String value2) {
            addCriterion("stu_name not between", value1, value2, "stuName");
            return (Criteria) this;
        }

        public Criteria andStuGenderIsNull() {
            addCriterion("stu_gender is null");
            return (Criteria) this;
        }

        public Criteria andStuGenderIsNotNull() {
            addCriterion("stu_gender is not null");
            return (Criteria) this;
        }

        public Criteria andStuGenderEqualTo(String value) {
            addCriterion("stu_gender =", value, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderNotEqualTo(String value) {
            addCriterion("stu_gender <>", value, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderGreaterThan(String value) {
            addCriterion("stu_gender >", value, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderGreaterThanOrEqualTo(String value) {
            addCriterion("stu_gender >=", value, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderLessThan(String value) {
            addCriterion("stu_gender <", value, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderLessThanOrEqualTo(String value) {
            addCriterion("stu_gender <=", value, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderLike(String value) {
            addCriterion("stu_gender like", value, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderNotLike(String value) {
            addCriterion("stu_gender not like", value, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderIn(List<String> values) {
            addCriterion("stu_gender in", values, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderNotIn(List<String> values) {
            addCriterion("stu_gender not in", values, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderBetween(String value1, String value2) {
            addCriterion("stu_gender between", value1, value2, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuGenderNotBetween(String value1, String value2) {
            addCriterion("stu_gender not between", value1, value2, "stuGender");
            return (Criteria) this;
        }

        public Criteria andStuBirthIsNull() {
            addCriterion("stu_birth is null");
            return (Criteria) this;
        }

        public Criteria andStuBirthIsNotNull() {
            addCriterion("stu_birth is not null");
            return (Criteria) this;
        }

        public Criteria andStuBirthEqualTo(String value) {
            addCriterion("stu_birth =", value, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthNotEqualTo(String value) {
            addCriterion("stu_birth <>", value, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthGreaterThan(String value) {
            addCriterion("stu_birth >", value, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthGreaterThanOrEqualTo(String value) {
            addCriterion("stu_birth >=", value, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthLessThan(String value) {
            addCriterion("stu_birth <", value, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthLessThanOrEqualTo(String value) {
            addCriterion("stu_birth <=", value, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthLike(String value) {
            addCriterion("stu_birth like", value, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthNotLike(String value) {
            addCriterion("stu_birth not like", value, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthIn(List<String> values) {
            addCriterion("stu_birth in", values, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthNotIn(List<String> values) {
            addCriterion("stu_birth not in", values, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthBetween(String value1, String value2) {
            addCriterion("stu_birth between", value1, value2, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuBirthNotBetween(String value1, String value2) {
            addCriterion("stu_birth not between", value1, value2, "stuBirth");
            return (Criteria) this;
        }

        public Criteria andStuAcademyIsNull() {
            addCriterion("stu_academy is null");
            return (Criteria) this;
        }

        public Criteria andStuAcademyIsNotNull() {
            addCriterion("stu_academy is not null");
            return (Criteria) this;
        }

        public Criteria andStuAcademyEqualTo(String value) {
            addCriterion("stu_academy =", value, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyNotEqualTo(String value) {
            addCriterion("stu_academy <>", value, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyGreaterThan(String value) {
            addCriterion("stu_academy >", value, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyGreaterThanOrEqualTo(String value) {
            addCriterion("stu_academy >=", value, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyLessThan(String value) {
            addCriterion("stu_academy <", value, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyLessThanOrEqualTo(String value) {
            addCriterion("stu_academy <=", value, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyLike(String value) {
            addCriterion("stu_academy like", value, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyNotLike(String value) {
            addCriterion("stu_academy not like", value, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyIn(List<String> values) {
            addCriterion("stu_academy in", values, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyNotIn(List<String> values) {
            addCriterion("stu_academy not in", values, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyBetween(String value1, String value2) {
            addCriterion("stu_academy between", value1, value2, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andStuAcademyNotBetween(String value1, String value2) {
            addCriterion("stu_academy not between", value1, value2, "stuAcademy");
            return (Criteria) this;
        }

        public Criteria andTeachernoIsNull() {
            addCriterion("teacherNo is null");
            return (Criteria) this;
        }

        public Criteria andTeachernoIsNotNull() {
            addCriterion("teacherNo is not null");
            return (Criteria) this;
        }

        public Criteria andTeachernoEqualTo(Integer value) {
            addCriterion("teacherNo =", value, "teacherno");
            return (Criteria) this;
        }

        public Criteria andTeachernoNotEqualTo(Integer value) {
            addCriterion("teacherNo <>", value, "teacherno");
            return (Criteria) this;
        }

        public Criteria andTeachernoGreaterThan(Integer value) {
            addCriterion("teacherNo >", value, "teacherno");
            return (Criteria) this;
        }

        public Criteria andTeachernoGreaterThanOrEqualTo(Integer value) {
            addCriterion("teacherNo >=", value, "teacherno");
            return (Criteria) this;
        }

        public Criteria andTeachernoLessThan(Integer value) {
            addCriterion("teacherNo <", value, "teacherno");
            return (Criteria) this;
        }

        public Criteria andTeachernoLessThanOrEqualTo(Integer value) {
            addCriterion("teacherNo <=", value, "teacherno");
            return (Criteria) this;
        }

        public Criteria andTeachernoIn(List<Integer> values) {
            addCriterion("teacherNo in", values, "teacherno");
            return (Criteria) this;
        }

        public Criteria andTeachernoNotIn(List<Integer> values) {
            addCriterion("teacherNo not in", values, "teacherno");
            return (Criteria) this;
        }

        public Criteria andTeachernoBetween(Integer value1, Integer value2) {
            addCriterion("teacherNo between", value1, value2, "teacherno");
            return (Criteria) this;
        }

        public Criteria andTeachernoNotBetween(Integer value1, Integer value2) {
            addCriterion("teacherNo not between", value1, value2, "teacherno");
            return (Criteria) this;
        }

        public Criteria andMajorIsNull() {
            addCriterion("major is null");
            return (Criteria) this;
        }

        public Criteria andMajorIsNotNull() {
            addCriterion("major is not null");
            return (Criteria) this;
        }

        public Criteria andMajorEqualTo(String value) {
            addCriterion("major =", value, "major");
            return (Criteria) this;
        }

        public Criteria andMajorNotEqualTo(String value) {
            addCriterion("major <>", value, "major");
            return (Criteria) this;
        }

        public Criteria andMajorGreaterThan(String value) {
            addCriterion("major >", value, "major");
            return (Criteria) this;
        }

        public Criteria andMajorGreaterThanOrEqualTo(String value) {
            addCriterion("major >=", value, "major");
            return (Criteria) this;
        }

        public Criteria andMajorLessThan(String value) {
            addCriterion("major <", value, "major");
            return (Criteria) this;
        }

        public Criteria andMajorLessThanOrEqualTo(String value) {
            addCriterion("major <=", value, "major");
            return (Criteria) this;
        }

        public Criteria andMajorLike(String value) {
            addCriterion("major like", value, "major");
            return (Criteria) this;
        }

        public Criteria andMajorNotLike(String value) {
            addCriterion("major not like", value, "major");
            return (Criteria) this;
        }

        public Criteria andMajorIn(List<String> values) {
            addCriterion("major in", values, "major");
            return (Criteria) this;
        }

        public Criteria andMajorNotIn(List<String> values) {
            addCriterion("major not in", values, "major");
            return (Criteria) this;
        }

        public Criteria andMajorBetween(String value1, String value2) {
            addCriterion("major between", value1, value2, "major");
            return (Criteria) this;
        }

        public Criteria andMajorNotBetween(String value1, String value2) {
            addCriterion("major not between", value1, value2, "major");
            return (Criteria) this;
        }

        public Criteria andEntryDateIsNull() {
            addCriterion("entry_date is null");
            return (Criteria) this;
        }

        public Criteria andEntryDateIsNotNull() {
            addCriterion("entry_date is not null");
            return (Criteria) this;
        }

        public Criteria andEntryDateEqualTo(String value) {
            addCriterion("entry_date =", value, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateNotEqualTo(String value) {
            addCriterion("entry_date <>", value, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateGreaterThan(String value) {
            addCriterion("entry_date >", value, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateGreaterThanOrEqualTo(String value) {
            addCriterion("entry_date >=", value, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateLessThan(String value) {
            addCriterion("entry_date <", value, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateLessThanOrEqualTo(String value) {
            addCriterion("entry_date <=", value, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateLike(String value) {
            addCriterion("entry_date like", value, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateNotLike(String value) {
            addCriterion("entry_date not like", value, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateIn(List<String> values) {
            addCriterion("entry_date in", values, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateNotIn(List<String> values) {
            addCriterion("entry_date not in", values, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateBetween(String value1, String value2) {
            addCriterion("entry_date between", value1, value2, "entryDate");
            return (Criteria) this;
        }

        public Criteria andEntryDateNotBetween(String value1, String value2) {
            addCriterion("entry_date not between", value1, value2, "entryDate");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}